import gtk, pygtk, sqlite3
from Dao import Dao

pygtk.require('2.0')
   
class Pergunta():
   
    def __init__(self):
         
        self.janela = gtk.Window(gtk.WINDOW_POPUP) #definimos a janela
        self.janela.set_position(gtk.WIN_POS_CENTER)#Centralizar a janela
        self.resposta = 'a'
       
        self.janela.set_title("Pergunta") #damos um titulo
        self.janela.set_opacity(0.9)
        self.janela.set_border_width(15) #definimos a largura da borda
        self.janela.connect('destroy', self.fechar, self.janela) #e criamos o envento de sair
       
        self.conteudo = gtk.VBox(False, 1) #criamos um VBox e dois HBox
        self.msgBox = gtk.HBox(False, 2)
        self.boxButton = gtk.HBox(False, 1)
       
        self.msgBox.set_border_width(8) #definimos a borda dos HBox
        self.boxButton.set_border_width(8)
       
        self.conn = sqlite3.connect('game')
        self.c = self.conn.cursor()
        self.c.execute("""select p.ci_pergunta ,p.ds_pergunta, p.ds_alternativas, p.ds_resposta, p.qtd_acerto, 
                          p.qtd_erro, p.cd_modulo, jm.qtd_acerto, jm.qtd_erro 
                          from tb_jogador_modulo jm
                          inner join tb_pergunta p on p.cd_modulo = jm.cd_modulo
                          where status = 0 order by random() limit 1;""")
       
        for self.t in self.c:
            self.cod = self.t[0]
            self.perg = self.t[1]
            self.alternativa = self.t[2]
            self.resp = self.t[3]
            self.acerto = self.t[4]
            self.erro = self.t[5]
            self.modulo = self.t[6]
            self.acertoMod = self.t[7]
            self.erroMod = self.t[8]    
       
        self.rotulo1 = gtk.Label(self.perg + '\n\n' + self.alternativa + '\n\n')
        self.c.execute("update tb_pergunta set status = 1 where ci_pergunta = ?",[str(self.cod)])
        self.btnEnviar = gtk.Button("Enviar") #criamos o botao
        self.btnEnviar.connect('clicked', self.ev_Enviar) #criamos um envento para o mesmo
       
        self.conteudo.pack_start(self.rotulo1, False, False, 0) #inserimos os componentes no Boxs
        #self.conteudo.pack_start(self.msgBox, False, False, 0)
        self.boxButton.pack_end(self.btnEnviar, False, False, 0)
 
        self.conteudo.pack_start(self.boxButton, False, False, 0)
       
        self.button = gtk.RadioButton(None, "a")
        self.button.connect("toggled", self.callback, "a")
        self.conteudo.pack_start(self.button, True, True, 0)
        self.button.set_active(True)
        self.button.show()
   
        self.button = gtk.RadioButton(self.button, "b")
        self.button.connect("toggled", self.callback, "b")
        self.conteudo.pack_start(self.button, True, True, 0)
        self.button.show()
   
        self.button = gtk.RadioButton(self.button, "c")
        self.button.connect("toggled", self.callback, "c")
        self.conteudo.pack_start(self.button, True, True, 0)
        self.button.show()
       
        self.button = gtk.RadioButton(self.button, "d")
        self.button.connect("toggled", self.callback, "d")
        self.conteudo.pack_start(self.button, True, True, 0)
        self.button.show()
   
        self.button = gtk.RadioButton(self.button, "e")
        self.button.connect("toggled", self.callback, "e")
        self.conteudo.pack_start(self.button, True, True, 0)
        self.button.show()
       
       
        self.janela.add(self.conteudo) #inserimos o box pricipal na janela
       
        self.conn.commit()
        self.c.close()
       
    def fechar(self, widget, window): #evento sair
        window.hide() #minimisa a janela
        gtk.main_quit() #finaliza o loop da gtk
   
    def callback(self, widget, data=None):
        self.resposta = data        
        #print "%s was toggled %s" % (data, ("OFF", "ON")[widget.get_active()])
   
    def ev_Enviar(self, widget): #evento enviar
        self.texto = self.resposta
        print self.texto
        self.textoLido = self.texto
        self.janela.hide()
        gtk.main_quit()
     
    def show(self): #criamos o evento de carregar a janela
        self.janela.show_all() #carrega a janela e todos os componentes dentro dela